Controlling haptic response to contact

ABSTRACT

A computing device can include a cover, a texture haptics layer adjacent to the cover, a display layer adjacent to the texture haptics layer, an impact haptics layer adjacent to the display layer, a controller, and a housing enclosing the controller and supporting the cover, the texture haptics layer, the display layer, and the impact haptics layer. The controller can be configured to activate the texture haptics layer in response to an object moving along the cover, control an image presented by the display layer, and activate the impact haptics layer in response to the object contacting the cover.

TECHNICAL FIELD

This description relates to tactile feedback from computing devices.

BACKGROUND

Some computing devices include touchscreen displays that can receiveinput by contact directly on the display. However, the contact into thedisplay can obscure the user’s view of the display, making it difficultfor the user to provide input into the correct location on the display.

SUMMARY

According to an example, a computing device can include a cover, atexture haptics layer adjacent to the cover, a display layer adjacent tothe texture haptics layer, an impact haptics layer adjacent to thedisplay layer, a controller, and a housing enclosing the controller andsupporting the cover, the texture haptics layer, the display layer, andthe impact haptics layer. The controller can be configured to activatethe texture haptics layer in response to an object moving along thecover, control an image presented by the display layer, and activate theimpact haptics layer in response to the object contacting the cover.

According to an example, a computing device can include a touchscreencomprising at least a first actuator and a second actuator, a controllerconfigured to activate the at least the first actuator and the secondactuator in response to detecting contact on the touchscreen, a forcethat the first actuator generates being based on a proximity of thedetected contact to the first actuator and a force that the secondactuator generates being based on a proximity of the detected contact tothe second actuator, and a housing supporting the touchscreen and thecontroller.

According to an example, a non-transitory computer-readable storagemedium can include instructions stored thereon. When executed by atleast one processor, the instructions can be configured to cause acomputing device to activate a texture haptics layer of the computingdevice based on determining that an object is moving along a display ofthe computing device, and activate an impact haptics layer of thecomputing device based on determining that the object has contacted thedisplay.

The details of one or more implementations are set forth in theaccompanying drawings and the description below. Other features will beapparent from the description and drawings, and from the claims.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1A is an exploded cross-sectional view of a computing deviceaccording to an example implementation.

FIG. 1B is a top view of the computing device according to an exampleimplementation.

FIG. 2 is a schematic view of a power architecture of the computingdevice according to an example implementation.

FIG. 3 shows attractive and frictional forces exerted on an object incontact with a cover of the computing device according to an exampleimplementation.

FIG. 4A is a schematic view of components of the computing device thatprovide texture feedback according to an example implementation.

FIG. 4B is a top view of a texture haptics layer according to an exampleimplementation.

FIG. 4C shows electric charges generated by the texture haptics layeraccording to an example implementation.

FIG. 5A is a top view of an impact haptics layer according to an exampleimplementation.

FIG. 5B is a top view of a portion of the impact haptics layer accordingto an example implementation.

FIG. 6 is a block diagram of the computing system according to anexample implementation.

FIG. 7 shows an example of a computer device and a mobile computerdevice that can be used to implement the techniques described here.

Like reference number refer to like elements.

DETAILED DESCRIPTION

A computing system, such as a smartphone, a tablet computing device, alaptop or notebook computing device, or personal computer, can include adisplay that provides both texture-type haptic feedback and impact-typehaptic feedback. The texture-type haptic feedback can increase frictionalong the display when the user is moving an object, such as the user’sfinger, along the display, which can inform the user that he or she hasreached a boundary point that may be obscured by his or her finger. Theimpact-type haptic feedback can produce vibrations in response to theobject contacting the display, which can inform the user that the userhas contacted a virtual button. In some examples, the display caninclude a touchscreen display that receives touch input in addition tooutputting the texture-type haptic feedback and the impact-type hapticfeedback. Accordingly, a computing system, such as a computing device,can be provided enabling types of interaction between a user and thecomputing system (e.g., computing device) which may be applied in orderto avoid obscuring the user’s view of the display and /or improperoperation of the computing system.

FIG. 1A is an exploded cross-sectional view of a computing device 100according to an example implementation. The cross-sectional view isshown along the cut line ‘A’ shown in FIG. 1B. The computing device 100shown in FIG. 1A can include a standalone computing device, such as asmartphone or a tablet computing device, or can include a display thatcan be coupled to a computing device.

The computing device 100 can include a cover 102. The cover 102 caninclude a transparent, rigid material, such as glass or plastic. Thecover 102 can be exposed, so that the user can contact the cover with anobject, such as the user’s finger, to provide input to the computingdevice 100.

The computing device 100 can include a texture haptics layer 104. Thetexture haptics layer 104 can be adjacent to the cover 102. The texturehaptics layer 104 can increase friction experienced by the object movingalong the cover 102. The texture haptics layer 104 can increase thefriction by generating an electric field and/or a magnetic field thatattracts the object toward the texture haptics layer 104. The texturehaptics layer 104 can be transparent, allowing images generated by adisplay layer 106 (described below) to be viewed from outside thecomputing device 100.

In some examples, the texture haptics layer 104 can include an electrodegrid layer, and/or a grid of electrodes. An example of the grid ofelectrodes is shown in FIG. 4B. In some examples, the texture hapticslayer 104 and/or electrode grid layer can include at least twoorthogonal electrode lines, such as a first electrode line and a secondelectrode line orthogonal to the first electrode line.

In some examples, the texture haptics layer 104 can include multipleactuators, such as piezoelectric actuators and/or Z-axis actuators. Insome examples, the texture haptics layer 104 can include ultrasoundactuators that create vibrations in the cover 102.

In some examples, the texture haptics layer 104 can include touchscreentechnology to receive and process touch input. The texture haptics layer104 can, for example, include one or more resistive touch sensors or oneor more capacitive touch sensors to detect location(s) and/or force(s)of an object(s) contacting the cover 102.

The computing device 100 can include the display layer 106. The displaylayer 106 can be adjacent to the texture haptics layer 104. The displaylayer 106 can generate graphical and/or visual output. The display layer106 can include, for example, a liquid crystal display (LCD), a plasmadisplay, or a light-emitting diode (LED) display, as non-limitingexamples.

The computing device 100 can include an impact haptics layer 108. Theimpact haptics layer 108 can generate vibrations. In some examples, theimpact haptics layer 108 can generate vibrations in response to thedisplay layer 106 detecting a contact and/or impact on the cover 102. Insome examples, the impact haptics layer 108 can include at least one,and/or multiple, piezoelectric actuators. An example of the impacthaptics layer 108 with a grid of piezoelectric actuators is shown inFIG. 5A.

In some examples, the impact haptics layer 108 can include one or moreelectromagnets. In some examples, the impact haptics layer 108 caninclude one more linear resonant actuators. In some examples, the cover102, the texture haptics layer 104, the display layer 106, and theimpact haptics layer 108 can collectively be referred to as a display.

The computing device can include a controller 110. The controller 110can control and/or activate the texture haptics layer 104 and/or impacthaptics layer 108 in response to input received and/or processed by thedisplay layer 106. In some examples, the controller 110 can activate thetexture haptics layer in response to an object moving along the cover102. In some examples, the controller 110 can control one or more imagespresented and/or generated by the display layer 106. In some examples,the controller 110 can activate the impact haptics layer 108 in responseto the object contacting the cover 102.

In some examples, the controller 110 can provide and/or output or moresignals, such as one or more alternating current (AC) signals, to thetexture haptics layer 104, such as to the electrode grid layer includedin some examples of the texture haptics layer 104. In some examples, thecontroller 110 can control and/or change the friction experienced by theobject moving along the cover by changing a frequency of the signal sentby the controller 110 to the texture haptics layer 104 and/or electrodegrid layer included in the texture haptics layer 104. In some examples,the controller 110 can change the frequency of the signal based on aspeed of the object moving along the cover 102, such as by increasingthe frequency of the signal when the object is moving faster and/orreducing the frequency of the signal when the object is moving slower.

In some examples in which the texture haptics layer 104 includes anelectrode grid layer that includes at least two orthogonal electrodelines, the controller 110 can generate an electric field at theelectrode grid layers by providing alternating current signals to the atleast two orthogonal electrode lines. In some examples, the controller110 can provide a first alternating current signal to a first electrodeline of the at least two orthogonal electrode lines, and the controller110 can provide a second alternating current signal to a secondelectrode line of the at least two orthogonal electrode lines. In someexamples, the first alternating current signal can have a same frequencyas the second alternating current signal. In some examples, the firstalternating current signal can be out of phase with the secondalternating current signal, such as by ninety degrees (90°) and/orbetween eighty-five degrees (85°) and ninety-five degrees (95°).

In some examples, the controller 110 can reduce power consumption byallowing only one of the texture haptics layer 104 and impact hapticslayer 108 to be active at a given time. In some examples, the controller110 can deactivate the impact haptics layer 108 when the texture hapticslayer 104 is active, such as when an object is moving along the cover102. In some examples, the controller 110 can deactivate the texturehaptics layer 104 when the impact haptics layer 108 is active, such aswhen an object initially contacts the cover 102.

In some examples, the controller 110 can deactivate the texture hapticslayer 104 based on determining that the object is no longer moving alongthe cover 102. The lack of movement along the cover eliminates friction,obviating any need for the texture haptics layer 104 to be active.

In some examples, the controller 110 can activate the texture hapticslayer 104 in response to an object moving along the cover 102 from astarting location on the cover 102 to a predetermined ending location onthe cover 102. The ending location on the cover can be a boundary of anobject presented by the display layer 106, such as the end of a list.

The computing device 100 can include a housing 112. The housing 112 canprotect components of the computing device 100, and/or maintain therespective locations and/or arrangements of the components with respectto each other. In some examples, the controller 110 can enclose thecontroller 110. In some examples, the housing 112 can support the cover102, the texture haptics layer 104, the display layer 106, and/or theimpact haptics layer 108.

FIG. 1B is a top view of the computing device 100 according to anexample implementation. In this example, the housing 112 surroundsand/or supports the cover 102. FIG. 1B shows the cut line ‘A’ from whichthe cross-sectional view of FIG. 1A was shown.

In some examples, the display layer 106 (not shown in FIG. 1B) canpresent an object, such as a graphical user interface (GUI) 120, throughthe cover 102. In the example shown in FIG. 1B, the GUI 120 is a list.The user can slide an object, such as the user’s finger, along the GUI120 from a starting location on the cover 102, such as from inside thetop box that includes the word, “List,” to a predetermined endinglocation on the cover 102, such as the bottom and/or end 122 of the GUI120. The controller 110, not shown in FIG. 1B, can activate the texturehaptics layer 104, not shown in FIG. 1B, in response to determining thatthe object has reached and/or contacted the predetermined endinglocation, such as the end 122. The activation of the texture hapticslayer 104 can increase the friction experienced by the object, givingthe user the feeling that he or her has reached a boundary and shouldstop moving the object along the cover 102, despite his or her view ofthe GUI 120 being obscured by his or her finger.

FIG. 2 is a schematic view of a power architecture of the computingdevice 100 according to an example implementation. In some examples, abattery 202, fuel gauge 204, Power Management Integrated Circuit (PMIC)206, driver 208, and/or processor 214, and be considered components ofthe controller 110 shown and described with respect to FIG. 1A.

The computing device 100 can include a battery 202. The battery canprovide power, such as by outputting electric current, to components ofthe computing device 100, such as the texture haptics layer 104, thedisplay layer 106, the impact haptics layer 108, and/or the controller110. In some examples, the battery 202 be a rechargeable battery.

The computing device 100 can include a fuel gauge 204. The fuel gauge204 can determine a power level, and/or remaining charge available, inthe battery 202. In some examples, the controller 110 can instruct thedisplay layer 106 to output and/or present a power level based on thepower level determined by the fuel gauge 204.

The computing device 100 can include the PMIC 206. The PMIC 206 canprovide power to the driver 208. The PMIC 206 can provide a constantvoltage V 210, such as 1.8 volts, and/or a system voltage (VSYS) 212, tothe driver 208.

The computing device 100 can include the driver 208. The driver 208 canprovide and/or output instructions directly to the texture haptics layer104 and/or the impact haptics layer 108. The driver 208 can provideand/or output instructions directly to the texture haptics layer 104and/or the impact haptics layer 108 based on instructions that thedriver 208 receives from the processor 214.

The processor 214 can provide instructions to the driver 208 based oninstructions stored in memory and input received and/or processed by thedisplay layer 106. The processor 214 can communicate with the driver 208via an Inter-Integrated Circuit (I²C) 216 and/or via a General PurposeInput/Output (GPIO) 218.

FIG. 3 shows attractive and frictional forces 304, 306 exerted on anobject 302 in contact with the cover 102 of the computing device 100according to an example implementation. The texture haptics layer 104can cause electrostatic attraction, such as by generating anelectromagnetic field, between the object 302 and the texture hapticslayer 104. The object 302 can include the user’s finger. In someexamples, the electromagnetic field can be generated by the controller110 (not shown in FIG. 3 ) sending and/or outputting alternating currentsignals to orthogonal electrode lines included in the texture hapticslayer 104. The object 302 can be considered a grounded electrode that isattracted to the electrode(s) included in the texture haptics layer 104.

The attraction force 304 in a direction normal to the cover 102 can beexpressed as F_(e) = ½ ∈S(V/d)², where ∈ is the dielectric constant, Sis the contact area of the object 302 on the cover 102, V is the voltagedifference between the object 302 and the texture haptics layer 104, andd is the distance between the object 302 and the texture haptics layer104. The friction force 306 opposing the user’s movement of the object302 along the cover 102 can be expressed as Force = µ(F_(e) + N), whereµ is the friction coefficient and N is the normal force applied by theuser in the direction normal to the cover 102. The attraction force 304generated by the texture haptics layer increases the friction force 306,creating a noticeable change that can prompt the user to stop moving theobject along the cover 102.

FIG. 4A is a schematic view of components of the computing device 100that provide texture feedback according to an example implementation.The texture haptics layer 104 can be in communication with, and/orcontrolled by, the controller 110.

The controller 110 can include an analog front end (AFE) 402 thatprovides and/or outputs analog signals, such as alternating currentsignals, to the texture haptics layer 104. The controller 110 caninclude an analog-to-digital converter (ADC) 404. The ADC 404 canconvert digital signals into the analog waveforms to be sent to thetexture haptics layer 104. The controller 110 can include a digitalsignal processor (DSP) 406. The DSP 406 can receive and/or processdigital signals and provide the digital signals to the ADC 404.

The computing device 100 can include a platform 408 in communicationwith the controller 110. The platform 408 can include a kernel driver410. The kernel driver 410 can provide a software interface between anoperating system 412 and components of the computing device 100, such asthe controller. The platform 408 can include and/or execute an operatingsystem (OS) 412. The OS 412 can manage the hardware and softwareresources of the computing device 100, including any of the componentsdescribed herein. The platform 408 can include and/or execute userinterface applications (UI Apps 414), such as applications that promptthe display layer 106 to present output such as the GUI 120 shown inFIG. 1B and prompt the controller 110 to activate texture haptics layer104 and/or impact haptics layer 108 in response to specific inputs.

In some examples, the controller 110 can provide and/or output analternating current driving signal, such as a sinusoidal alternatingcurrent driving signal, to one or more electrode grids on the texturehaptics layer 104. The alternating current driving signal can generate alocalized electrostatic force, such as the attraction force 304 shownand described with respect to FIG. 3 , to provide haptic feedback to auser. In some examples, the electrode grid included in the texturehaptics layer 104 can also sense and/or process touch input by selfcapacitive and/or mutual capacitive sensing. In some examples, thealternating current driving signal can have an amplitude of fifty voltsand two hundred Hertz. In some examples, haptic feedback can triggerundesired, and/or ghost stimulation on the electrode grid. To eliminatethe ghost stimulation, the controller can provide signals to electrodelines, including orthogonal electrode lines, with a phase difference,such as a phase difference of approximately ninety degrees (such asbetween eighty-five degrees and ninety-five degrees) (which can renderthe signals orthogonal to each other).

FIG. 4B is a top view of a texture haptics layer 104 according to anexample implementation. In this example, the texture haptics layer 104can include multiple rows 426A, 426B, 426C, 426D, 426E of electrodes andmultiple columns 428A, 428B, 428C, 428D, 428E, 428F of electrodes. Therows 426A, 426B, 426C, 426D, 426E of electrodes can be orthogonal to thecolumns 428A, 428B, 428C, 428D, 428E, 428F of electrodes.

In this example, the controller 110 can output a row signal 422 and acolumn signal 424. The texture haptics layer 104 can include row nodes422A, 422B, 422C, 422D, 422E that receive the row signal 422 and columnnodes 424A, 424B, 424C, 424D, 424E, 424F that receive the column signal424. In some examples, the row signal 422 and column signal 424 can havea same frequency, but be out of phase with each other, such as byapproximately ninety degrees, to eliminate ghost stimulation of theelectrodes included in the texture haptics layer 104.

FIG. 4C shows electric charges generated by the texture haptics layer104 according to an example implementation. The controller 110 generatesand/or sends, to the texture haptics layer 104, an alternating currentsignal 450. The signal 450 can be a sinusoidal signal.

At time T0, the signal 450 is positive, and the texture haptics layer104 is positively charged. The positive charge at the texture hapticslayer 104 creates a negative layer at a bottom portion of the cover 102nearest to the texture haptics layer 104, which also creates a positivelayer at a top portion of the cover 102 farthest from the texturehaptics layer 104 and/or nearest to the object 302. The positive layerat the top portion of the cover 102 becomes attracted to a negativeportion of the object 302, attracting the object 302 to the cover 102,creating the attraction force 304 and increasing the friction force 306.

At time T1, the signal 450 is zero. With the signal 450 at zero, none ofthe texture haptics layer 104, cover 102, or object 302 are charged, andthe attraction force 304 is zero.

At time T2, the signal 450 is negative, and the texture haptics layer104 is negatively charged. The negative charge at the texture hapticslayer 104 creates a positive layer at a bottom portion of the cover 102nearest to the texture haptics layer 104, which also creates a negativelayer at a top portion of the cover 102 farthest from the texturehaptics layer 104 and/or nearest to the object 302. The negative layerat the top portion of the cover 102 becomes attracted to a positiveportion of the object 302, attracting the object 302 to the cover 102,creating the attraction force 304 and increasing the friction force 306.

At time T3, the signal 450 is zero. With the signal 450 at zero, none ofthe texture haptics layer 104, cover 102, or object 302 are charged, andthe attraction force 304 is zero.

The alternating current signal 450, which varies the voltage at thetexture haptics layer 104 in a sinusoidal pattern, can increase thefriction force 306. Increasing the frequency of the signal, and/orshortening the period shown by times T0, T1, T2, and T3, can increasethe friction perceived by the user. The controller 110 can increase thefrequency in response to faster movement of the object 302 on the cover102, giving the user a stronger prompt to stop moving the object alongthe cover 102.

FIG. 5A is a top view of an impact haptics layer 108 according to anexample implementation. The impact haptics layer 108 can includemultiple actuators 502, 504, 506, 508, 510, 512, 514, 516, 518, and/or agrid of actuators 502, 504, 506, 508, 510, 512, 514, 516, 518. Theactuators 502, 504, 506, 508, 510, 512, 514, 516, 518 can includepiezoelectric actuators.

The computing device 100 can detect a contact and/or impact of an object302. The computing device 100 can detect the contact and/or impact ofthe object 302 based on capacitive sensors included in the display layer106, and/or based on one or more piezo transducers included in theimpact haptics layer 108 (in some examples, the impact haptics layer 108includes one or more piezo transducers). In response to detecting thecontact and/or impact of the object 302, the controller 110 canconcurrently actuate actuators 502, 504, 508, 510 that are adjacent tothe object 302. The controller 110 can determine the four actuators 502,504, 508, 510 that are adjacent to and/or closest to the object 302 togenerate localized impact haptics 520.

FIG. 5B is a top view of a portion of the impact haptics layer 108according to an example implementation. FIG. 5B shows the localizedimpact haptics 520 shown in FIG. 5A. The controller 110 can actuate theactuators 502, 504, 508, 510 with forces and/or magnitudes based onproximities of the respective actuators 502, 504, 508, 510 to the object302. In some examples, the force and/or magnitudes of the actuators 502,504, 508, 510 can increase linearly as measured distances of otheractuators 502, 504, 508, 510.

The controller 110 can measure a first distance D1 of the object 302from a line 542 between a first actuator 502 and a third actuator 508.The controller 110 can measure a second distance D2 of the object 302from a line 546 between the second actuator 504 and a fourth actuator510. The controller 110 can measure a third distance D3 of the object302 from a line 544 between the first actuator 502 and the secondactuator 504. The controller 110 can measure a fourth distance D4 of theobject 302 from a line 548 between the third actuator 508 and the fourthactuator 510.

In some examples, the controller 110 can instruct the first actuator 502to generate a force ƒ1 = F * (D2 + D4) / 2L, where F and L are constants(in some examples L = D1 + D2), making the force of the first actuator502 proportional to the sum of the distance D2 of the contact of theobject 302 from the line 546 between the second actuator 504 and thefourth actuator 510 and the distance D4 of the contact of the object 302from the line 548 between the third actuator 508 and the fourth actuator510. In some examples, the controller 110 can instruct the secondactuator 504 to generate a force ƒ2 = F * (D1 + D4) / 2L), making theforce of the second actuator 504 proportional to the sum of the measureddistance D1 of the contact of the object 302 from the line 542 betweenthe first actuator 502 and the third actuator 508 and the measureddistance D4 of the object from the line 548 between the third actuator508 and the fourth actuator 510. In some examples, the controller 110can instruct the third actuator 508 to generate a force ƒ3 = F * (D2 +D3) / 2L), making the force of the third actuator 508 proportional tothe sum of the measured distance D2 of the contact of the object 302from the line 546 between the second actuator 504 and the fourthactuator 510 and the measured distance D3 of the contact of the object302 from the line 544 between the first actuator 502 and the secondactuator 504. In some examples, the controller 110 can instruct thefourth actuator 510 to generate a force ƒ4 = F * (D1 + D3) / 2L), makingthe force of the fourth actuator proportional to the sum of the measureddistance D1 of the contact of the object 302 from the line 542 betweenthe first actuator 502 and the third actuator 508 and the measureddistance D3 of the contact of the object 302 from the line from the line544 between the first actuator 502 and the second actuator 504. Thecontroller 110 can actuate actuators 502, 504, 508, 510 that areproximal to the object 302 without activating actuators that are greaterthan a maximum distance from the contact location of the object 302. Insome exmaples, the maximum distance can be L or ½ L. Generating moreforce at actuators 502, 504, 508, 510 closer to the object 302, and/orless force at actuators 502, 504, 508, 510 farther from the object 302,can save power.

FIG. 6 is a block diagram of the computing device 100 according to anexample implementation. The computing device 100 can include a contactdeterminer 602. The contact determiner 602 can determine whether anobject 302, such as a finger, has contacted the cover 102. The contactdeterminer 602 can determine whether the object 302 has contacted thecover 102 based on input from capacitive sensors or resistive sensorsincluded in the display layer 106, or based on input from transducersincluded in the impact haptics layer 108, as non-limiting examples.

The computing device 100 can include a movement determiner 604. Themovement determiner 604 can determine whether the object 302 is movingalong the cover 102. The movement determiner 604 can determine that theobject 302 is moving along the cover 102 based, for example, on changinginput received from touch input components such as the capacitivesensors, resistive sensors, and/or transducers.

The computing device 100 can include a location determiner 606. Thelocation determiner 606 can determine the location of the object 302 onthe cover 102. The location determiner 606 can determine the location ofthe object 302 on the cover 102 based, for example, on input receivedfrom touch input components such as the capacitive sensors, resistivesensors, and/or transducers.

The computing device 100 can include a speed determiner 608. The speeddeterminer 608 can determine a speed at which the object 302 is movingalong the cover 102. The speed determiner 608 can determine the speed atwhich the object is moving along the cover 102 based, for example, onchanging input received from touch input components such as thecapacitive sensors, resistive sensors, and/or transducers, and a clockor other device that measures time and which is included in thecomputing device 100.

The computing device 100 can include a distance determiner 610. Thedistance determiner 610 can determine the measured distance between theobject 302 and actuators 502, 504, 508, 510, as discussed above withrespect to FIGS. 5A and 5B. The distance determiner 610 can determinethe measured distance based on the location of the object determined bythe location determiner 606 and predefined locations of the actuators502, 504, 508, 510 and/or lines 542, 544, 546, 548.

The computing device 100 can include a texture controller 612. Thetexture controller 612 can activate the texture haptics layer 104 inresponse to the movement determiner 604 determining that the object 302is moving along the cover 102. In some examples, the texture controller612 can activate the texture haptics layer 104 in response to thelocation determiner 606 determining that the object 302 has reached aboundary, such as the end 122 of the GUI 120 shown in FIG. 1B.Activating the texture haptics layer 104, which increases friction alongthe cover 102, can encourage the user to stop moving the object 302.

The texture controller 612 can include a frequency controller 614. Thefrequency controller 614 can control the frequency of the alternatingsignal sent to the texture haptics layer 104. A higher frequency signalcan cause the perceived friction to be higher. In some examples, thefrequency controller can increase the frequency based on the speeddeterminer 608 determining that the speed of the object 302 is higher,and decrease the frequency based on the speed determiner 608 determiningthat the speed of the object 302 is lower.

The texture controller 612 can include a phase controller 616. The phasecontroller 616 can control phases of signals sent to electrodes includedin the texture haptics layer 104. In some examples, the phase controller616 can cause electrodes, and/or electrode lines, that are orthogonal toeach other, to have signals that are out of phase and/or orthogonal witheach other, such as offset by about ninety degrees (such as betweeneighty-five degrees and ninety-five degrees).

The computing device 100 can include an impact controller 618. Theimpact controller 618 can control and/or activate the impact hapticslayer 108 based on the contact determiner 602 determining that an object302 has contacted the cover 102.

The impact controller 618 can include a magnitude controller 620. Themagnitude controller 620 can control the magnitude of force generated byactuators included in the impact haptics layer 108. In some examples,the magnitude controller 620 can cause actuators closer to the object302 to generate more force than actuators farther from the object 302,as discussed above with respect to FIGS. 5A and 5B.

The computing device 100 can include at least one processor 622. The atleast one processor 622 can execute instructions, such as instructionsstored in at least one memory device 624, to cause the computing device100 to perform any combination of methods, functions, and/or techniquesdescribed herein.

The computing device 100 may include at least one memory device 624. Theat least one memory device 624 can include a non-transitorycomputer-readable storage medium. The at least one memory device 624 canstore data and instructions thereon that, when executed by at least oneprocessor, such as the processor 622, are configured to cause thecomputing device 100 to perform any combination of methods, functions,and/or techniques described herein. Accordingly, in any of theimplementations described herein (even if not explicitly noted inconnection with a particular implementation), software (e.g., processingmodules, stored instructions) and/or hardware (e.g., processor, memorydevices, etc.) associated with, or included in, the computing device 100can be configured to perform, alone, or in combination with thecomputing device 100, any combination of methods, functions, and/ortechniques described herein.

The computing device 100 may include at least one input/output node 626.The at least one input/output node 626 may receive and/or send data,such as from and/or to, a server, and/or may receive input and provideoutput from and to a user. The input and output functions may becombined into a single node, or may be divided into separate input andoutput nodes. The input/output node 626 can include, for example, atouchscreen display (which can include the cover 102, the texturehaptics layer 104, the display layer 106, and/or the impact hapticslayer 108) that receives and processes input and provides haptic output,a speaker, a microphone, one or more buttons, and/or one or more wiredor wireless interfaces for communicating with other computing devices.

FIG. 7 shows an example of a generic computer device 700 and a genericmobile computer device 750, which may be used with the techniquesdescribed here. Computing device 700 is intended to represent variousforms of digital computers, such as laptops, desktops, tablets,workstations, personal digital assistants, televisions, servers, bladeservers, mainframes, and other appropriate computing devices. Computingdevice 750 is intended to represent various forms of mobile devices,such as personal digital assistants, cellular telephones, smart phones,and other similar computing devices. The components shown here, theirconnections and relationships, and their functions, are meant to beexemplary only, and are not meant to limit implementations of theinventions described and/or claimed in this document.

Computing device 700 includes a processor 702, memory 704, a storagedevice 706, a high-speed interface 708 connecting to memory 704 andhigh-speed expansion ports 710, and a low speed interface 712 connectingto low speed bus 714 and storage device 706. The processor 702 can be asemiconductor-based processor. The memory 704 can be asemiconductor-based memory. Each of the components 702, 704, 706, 708,710, and 712, are interconnected using various busses, and may bemounted on a common motherboard or in other manners as appropriate. Theprocessor 702 can process instructions for execution within thecomputing device 700, including instructions stored in the memory 704 oron the storage device 706 to display graphical information for a GUI onan external input/output device, such as display 716 coupled to highspeed interface 708. In other implementations, multiple processorsand/or multiple buses may be used, as appropriate, along with multiplememories and types of memory. Also, multiple computing devices 700 maybe connected, with each device providing portions of the necessaryoperations (e.g., as a server bank, a group of blade servers, or amulti-processor system).

The memory 704 stores information within the computing device 700. Inone implementation, the memory 704 is a volatile memory unit or units.In another implementation, the memory 704 is a non-volatile memory unitor units. The memory 704 may also be another form of computer-readablemedium, such as a magnetic or optical disk.

The storage device 706 is capable of providing mass storage for thecomputing device 700. In one implementation, the storage device 706 maybe or contain a computer-readable medium, such as a floppy disk device,a hard disk device, an optical disk device, or a tape device, a flashmemory or other similar solid state memory device, or an array ofdevices, including devices in a storage area network or otherconfigurations. A computer program product can be tangibly embodied inan information carrier. The computer program product may also containinstructions that, when executed, perform one or more methods, such asthose described above. The information carrier is a computer- ormachine-readable medium, such as the memory 704, the storage device 706,or memory on processor 702.

The high speed controller 708 manages bandwidth-intensive operations forthe computing device 700, while the low speed controller 712 manageslower bandwidth-intensive operations. Such allocation of functions isexemplary only. In one implementation, the high-speed controller 708 iscoupled to memory 704, display 716 (e.g., through a graphics processoror accelerator), and to high-speed expansion ports 710, which may acceptvarious expansion cards (not shown). In the implementation, low-speedcontroller 712 is coupled to storage device 706 and low-speed expansionport 714. The low-speed expansion port, which may include variouscommunication ports (e.g., USB, Bluetooth, Ethernet, wireless Ethernet)may be coupled to one or more input/output devices, such as a keyboard,a pointing device, a scanner, or a networking device such as a switch orrouter, e.g., through a network adapter.

The computing device 700 may be implemented in a number of differentforms, as shown in the figure. For example, it may be implemented as astandard server 720, or multiple times in a group of such servers. Itmay also be implemented as part of a rack server system 724. Inaddition, it may be implemented in a personal computer such as a laptopcomputer 722. Alternatively, components from computing device 700 may becombined with other components in a mobile device (not shown), such asdevice 750. Each of such devices may contain one or more of computingdevice 700, 750, and an entire system may be made up of multiplecomputing devices 700, 750 communicating with each other.

Computing device 750 includes a processor 752, memory 764, aninput/output device such as a display 754, a communication interface766, and a transceiver 768, among other components. The device 750 mayalso be provided with a storage device, such as a microdrive or otherdevice, to provide additional storage. Each of the components 750, 752,764, 754, 766, and 768, are interconnected using various buses, andseveral of the components may be mounted on a common motherboard or inother manners as appropriate.

The processor 752 can execute instructions within the computing device750, including instructions stored in the memory 764. The processor maybe implemented as a chipset of chips that include separate and multipleanalog and digital processors. The processor may provide, for example,for coordination of the other components of the device 750, such ascontrol of user interfaces, applications run by device 750, and wirelesscommunication by device 750.

Processor 752 may communicate with a user through control interface 758and display interface 756 coupled to a display 754. The display 754 maybe, for example, a TFT LCD (Thin-Film-Transistor Liquid Crystal Display)or an OLED (Organic Light Emitting Diode) display, or other appropriatedisplay technology. The display interface 756 may comprise appropriatecircuitry for driving the display 754 to present graphical and otherinformation to a user. The control interface 758 may receive commandsfrom a user and convert them for submission to the processor 752. Inaddition, an external interface 762 may be provided in communicationwith processor 752, so as to enable near area communication of device750 with other devices. External interface 762 may provide, for example,for wired communication in some implementations, or for wirelesscommunication in other implementations, and multiple interfaces may alsobe used.

The memory 764 stores information within the computing device 750. Thememory 764 can be implemented as one or more of a computer-readablemedium or media, a volatile memory unit or units, or a non-volatilememory unit or units. Expansion memory 774 may also be provided andconnected to device 750 through expansion interface 772, which mayinclude, for example, a SIMM (Single In Line Memory Module) cardinterface. Such expansion memory 774 may provide extra storage space fordevice 750, or may also store applications or other information fordevice 750. Specifically, expansion memory 774 may include instructionsto carry out or supplement the processes described above, and mayinclude secure information also. Thus, for example, expansion memory 774may be provided as a security module for device 750, and may beprogrammed with instructions that permit secure use of device 750. Inaddition, secure applications may be provided via the SIMM cards, alongwith additional information, such as placing identifying information onthe SIMM card in a non-hackable manner.

The memory may include, for example, flash memory and/or NVRAM memory,as discussed below. In one implementation, a computer program product istangibly embodied in an information carrier. The computer programproduct contains instructions that, when executed, perform one or moremethods, such as those described above. The information carrier is acomputer- or machine-readable medium, such as the memory 764, expansionmemory 774, or memory on processor 752, that may be received, forexample, over transceiver 768 or external interface 762.

Device 750 may communicate wirelessly through communication interface766, which may include digital signal processing circuitry wherenecessary. Communication interface 766 may provide for communicationsunder various modes or protocols, such as GSM voice calls, SMS, EMS, orMMS messaging, CDMA, TDMA, PDC, WCDMA, CDMA2000, or GPRS, among others.Such communication may occur, for example, through radio-frequencytransceiver 768. In addition, short-range communication may occur, suchas using a Bluetooth, WiFi, or other such transceiver (not shown). Inaddition, GPS (Global Positioning System) receiver module 770 mayprovide additional navigation- and location-related wireless data todevice 750, which may be used as appropriate by applications running ondevice 750.

Device 750 may also communicate audibly using audio codec 760, which mayreceive spoken information from a user and convert it to usable digitalinformation. Audio codec 760 may likewise generate audible sound for auser, such as through a speaker, e.g., in a handset of device 750. Suchsound may include sound from voice telephone calls, may include recordedsound (e.g., voice messages, music files, etc.) and may also includesound generated by applications operating on device 750.

The computing device 750 may be implemented in a number of differentforms, as shown in the figure. For example, it may be implemented as acellular telephone 780. It may also be implemented as part of a smartphone 782, personal digital assistant, or other similar mobile device.

Various implementations of the systems and techniques described here canbe realized in digital electronic circuitry, integrated circuitry,specially designed ASICs (application specific integrated circuits),computer hardware, firmware, software, and/or combinations thereof.These various implementations can include implementation in one or morecomputer programs that are executable and/or interpretable on aprogrammable system including at least one programmable processor, whichmay be special or general purpose, coupled to receive data andinstructions from, and to transmit data and instructions to, a storagesystem, at least one input device, and at least one output device.

These computer programs (also known as programs, software, softwareapplications or code) include machine instructions for a programmableprocessor, and can be implemented in a high-level procedural and/orobject-oriented programming language, and/or in assembly/machinelanguage. As used herein, the terms “machine-readable medium”“computer-readable medium” refers to any computer program product,apparatus and/or device (e.g., magnetic discs, optical disks, memory,Programmable Logic Devices (PLDs)) used to provide machine instructionsand/or data to a programmable processor, including a machine-readablemedium that receives machine instructions as a machine-readable signal.The term “machine-readable signal” refers to any signal used to providemachine instructions and/or data to a programmable processor.

To provide for interaction with a user, the systems and techniquesdescribed here can be implemented on a computer having a display device(e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor)for displaying information to the user and a keyboard and a pointingdevice (e.g., a mouse or a trackball) by which the user can provideinput to the computer. Other kinds of devices can be used to provide forinteraction with a user as well; for example, feedback provided to theuser can be any form of sensory feedback (e.g., visual feedback,auditory feedback, or tactile feedback); and input from the user can bereceived in any form, including acoustic, speech, or tactile input.

The systems and techniques described here can be implemented in acomputing system that includes a back end component (e.g., as a dataserver), or that includes a middleware component (e.g., an applicationserver), or that includes a front end component (e.g., a client computerhaving a graphical user interface or a Web browser through which a usercan interact with an implementation of the systems and techniquesdescribed here), or any combination of such back end, middleware, orfront end components. The components of the system can be interconnectedby any form or medium of digital data communication (e.g., acommunication network). Examples of communication networks include alocal area network (“LAN”), a wide area network (“WAN”), and theInternet.

The computing system can include clients and servers. A client andserver are generally remote from each other and typically interactthrough a communication network. The relationship of client and serverarises by virtue of computer programs running on the respectivecomputers and having a client-server relationship to each other.

A number of embodiments have been described. Nevertheless, it will beunderstood that various modifications may be made without departing fromthe spirit and scope of the invention.

In addition, the logic flows depicted in the figures do not require theparticular order shown, or sequential order, to achieve desirableresults. In addition, other steps may be provided, or steps may beeliminated, from the described flows, and other components may be addedto, or removed from, the described systems. Accordingly, otherembodiments are within the scope of the following claims.

1. A computing device comprising: a cover; a texture haptics layeradjacent to the cover; a display layer adjacent to the texture hapticslayer; an impact haptics layer adjacent to the display layer; acontroller configured to: activate the texture haptics layer in responseto an object moving along the cover; control an image presented by thedisplay layer; and activate the impact haptics layer in response to theobject contacting the cover; and a housing enclosing the controller andsupporting the cover, the texture haptics layer, the display layer, andthe impact haptics layer.
 2. The computing device of claim 1, whereinthe texture haptics layer comprises an electrode grid layer.
 3. Thecomputing device of claim 2, wherein the controller is configured tocontrol a frequency of a signal sent to the electrode grid layer basedon a speed of the object moving along the cover.
 4. The computing deviceof claim 2, wherein: the electrode grid layer comprises at least twoorthogonal electrode lines; and the controller is configured to generatean electric field at the electrode grid layer by providing alternatingcurrent signals to the at least two orthogonal electrode lines.
 5. Thecomputing device of claim 4, wherein: the at least two orthogonalelectrode lines comprise a first electrode line and a second electrodeline, the second electrode line being orthogonal to the first electrodeline; the controller provides a first alternating current signal to thefirst electrode line; the controller provides a second alternatingcurrent signal to the second electrode line; the first alternatingcurrent signal has a same frequency as the second alternating currentsignal; and the first alternating current signal is out of phase withthe second alternating current signal.
 6. The computing device of claim1, wherein the display layer comprises at least one capacitive touchsensor.
 7. The computing device of claim 1, wherein the impact hapticslayer comprises at least one piezoelectric actuator.
 8. The computingdevice of claim 1, wherein the controller is configured to: deactivatethe impact haptics layer when the texture haptics layer is active; anddeactivate the texture haptics layer when the impact haptics layer isactive.
 9. The computing device of claim 1, wherein the controller isconfigured to deactivate the texture haptics layer based on determiningthat the object is no longer moving along the cover.
 10. The computingdevice of claim 1, wherein the controller is configured to activate thetexture haptics layer in response to the object moving along the coverfrom a starting location on the cover to a predetermined ending locationon the cover.
 11. A computing device comprising: a touchscreencomprising at least a first actuator and a second actuator; a controllerconfigured to activate the at least the first actuator and the secondactuator in response to detecting contact on the touchscreen, a forcethat the first actuator generates being based on a proximity of thedetected contact to the first actuator and a force that the secondactuator generates being based on a proximity of the detected contact tothe second actuator; and a housing supporting the touchscreen and thecontroller.
 12. The computing device of claim 11, wherein the controllerconcurrently activates the first actuator and the second actuator inresponse to detecting contact on the touchscreen.
 13. The computingdevice of claim 11, wherein: the force that the first actuator generatesincreases linearly as a function of a measured distance of the contactfrom the second actuator; and the force that the second actuatorgenerates increases linearly as a function of a measured distance of thecontact from the first actuator.
 14. The computing device of claim 11,wherein: the touchscreen comprises at least the first actuator, thesecond actuator, a third actuator, and a fourth actuator; and thecontroller is configured to activate the at least the first actuator,the second actuator, the third actuator, and the fourth actuator inresponse to detecting contact on the touchscreen, wherein: the forcethat the first actuator generates is proportional to a sum of a measureddistance of the contact from the second actuator and a measured distanceof the contact from the fourth actuator; the force that the secondactuator generates is proportional to a sum of a measured distance ofthe contact from the first actuator and a measured distance of thecontact from the fourth actuator; the force that the third actuatorgenerates is proportional to a sum of a measured distance of the contactfrom the second actuator and a measured distance of the contact from thethird actuator; and the force that the fourth actuator generates isproportional to a sum of a measured distance of the contact from thefirst actuator and a measured distance of the contact from the thirdactuator.
 15. The computing device of claim 11, wherein: the controlleris configured to activate at least the first actuator and the secondactuator in response to detecting contact on the touchscreen withoutactivating actuators that are at least a maximum distance from thecontact.
 16. The computing device of claim 11, wherein: the firstactuator comprises a first piezoelectric actuator; and the secondactuator comprises a second piezoelectric actuator.
 17. A non-transitorycomputer-readable storage medium comprising instructions stored thereonthat, when executed by at least one processor, are configured to cause acomputing device to: activate a texture haptics layer of the computingdevice based on determining that an object is moving along a display ofthe computing device; and activate an impact haptics layer of thecomputing device based on determining that the object has contacted thedisplay.
 18. The non-transitory computer-readable storage medium ofclaim 17, wherein the instructions are further configured to cause thecomputing device to change a frequency of an alternating current signalflowing through the texture haptics layer based on a speed of the objectmoving along the display.
 19. The non-transitory computer-readablestorage medium of claim 17, wherein the instructions are furtherconfigured to cause the computing device to: deactivate the impacthaptics layer when the texture haptics layer is active; and deactivatethe texture haptics layer when the impact haptics layer is active. 20.The non-transitory computer-readable storage medium of claim 17, whereinthe instructions are further configured to cause the computing device tocontrol forces of actuators included in the impact haptics layer basedon proximity of the object to the actuators.